package common

import (
	"hundsun.com/hsl/hschain/common/types"
	manage "hundsun.com/hsl/hschain/contract/native/manage/common"
)

const (
	// ClientCmdName cmd name
	ClientCmdName = "hschain-cli"
	// ClientCmdDesc cmd desc
	ClientCmdDesc = `HSL 2.0 command-line tool, used for interaction with HSL2.0 node`

	// FlagChainID flag chain id
	FlagChainID = "chainID"
	// FlagRPCLaddr flag rpc laddr
	FlagRPCLaddr = "rpc_laddr"

	// FlagFee flag fee
	FlagFee = "fee"
	// FlagExecTy flag exec type
	FlagExecTy = "execTy"
	// FlagKeyStoreFilePath flag keystore file path
	FlagKeyStoreFilePath = "keystoreFile"
	// FlagKeyStoreFilePasswd flag keystore file password
	FlagKeyStoreFilePasswd = "keystorePassword"
	// FlagKeyAsymmetricAlgorithm ...
	FlagKeyAsymmetricAlgorithm = "keyAsymmetricAlgorithm"
	// FlagKeyHashFamily ...
	FlagKeyHashFamily = "keyHashFamily"
	// FlagKeySymmetricAlgorithm ...
	FlagKeySymmetricAlgorithm = "keySymmetricAlgorithm"
	// FlagTTL ...
	FlagTTL = "ttl"
	// FlagFrom flag from address
	FlagFrom = "from"
	// FlagTo flag to address
	FlagTo = "to"
	// FlagAmount flag amount
	FlagAmount = "amount"
	// FlagContractName flag contract name
	FlagContractName = "contractName"
	// FlagContractVersion flag contract version
	FlagContractVersion = "contractVersion"
	// FlagPayload flag payload
	FlagPayload = "payload"
)

// TyLogMap type log mapmake
var TyLogMap = map[uint32]string{
	types.TyLogUnknown:  "TyLogUnknown",
	types.TyLogErr:      "TyLogErr",
	types.TyLogFee:      "TyLogFee",
	types.TyLogTransfer: "TyLogTransfer",
	types.TyLogGenerate: "TyLogGenerate",
	types.TyLogFrozen:   "TyLogFrozen",
	types.TyLogRollback: "TyLogRollback",

	manage.TyLogCreateManageFlow:    "TyLogCreateManageFlow",
	manage.TyLogCreateManageFlowCfg: "TyLogCreateManageFlowCfg",
	manage.TyLogVoteManageFlow:      "TyLogVoteManageFlow",
	manage.TyLogVoteHistory:         "TyLogVoteHistory",
	manage.TyLogModifyManageFlow:    "TyLogModifyManageFlow",
	manage.TyLogCloseManageFlow:     "TyLogCloseManageFlow",
	manage.TyLogUpdateManageFlowID:  "TyLogUpdateManageFlowID",
	manage.TyLogUserGroupUpdate:     "TyLogUserGroupUpdate",
	manage.TyLogSysParamUpdate:      "TyLogSysParamUpdate",
	manage.TyLogConsensusUpdate:     "TyLogConsensusUpdate",
}
